package com.retry.rabbit.config;

import org.springframework.amqp.core.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class DirectConfig {

    public static final String RETRY_QUEUE="retry_queue";
    public static final String RETRY_EXCHANGE="retry_exchange";
    public static final String RETRY_ROUTE_KEY="retry_route_key";

    /**
     * 创建队列
     */
    @Bean
    public Queue queue01(){
        //                      队列名             是否持久化     是否独占          是都自动删除
        return new Queue(RETRY_QUEUE,false,false,true);
    }


    /**
     * 创建的交换机
     */
    @Bean
    public DirectExchange retryExchange(){
        //同理队列，建造者模式也可以在后面加很多属性
        return ExchangeBuilder.directExchange(RETRY_EXCHANGE).autoDelete().build();
    }

    /**
     * 绑定关系
     */
    @Bean
    public Binding fanout01(){
        return BindingBuilder.bind(queue01()).to(retryExchange()).with(RETRY_ROUTE_KEY);
    }

}
